Contextual search history in collaborative archives

ABSTRACT

A computing system executes an instant message session between one or more users of the one or more collaborative tools. The computer system further examines information from instant messages in a message window of the instant message session. In addition, the computer system identifies keyword data of the examined information of the instant messages. The computer system queries a first repository for related content data that matches the keyword data. The computer system also generates one or more contextual search results based on the match. The computer system further transmits the generated one or more contextual search results for display on the one or more collaboration tools. The computer system further stores the keyword data and the contextual search results of the keyword data in a collaboration archive of a database, and automatically updates the contextual search results during instant message sessions.

FIELD OF THE INVENTION

The present invention relates generally to messaging communicationsystems, and more particularly to generation of related contextualsearch results during instant messaging sessions of one or morecollaborative tools based on keyword data of requestors or responders ofthe instant messaging sessions.

BACKGROUND OF THE INVENTION

The Internet is a global network of computers and networks joinedtogether by gateways that handle data transfer and the conversion ofmessages from a protocol of a sending network to a protocol used by areceiving network. For example, one or more computers can communicatewith other computers over the Internet.

Information between computers travels over the Internet through avariety of languages also referred to as protocols. Instant messaging isa form of communication that travels over the Internet. Instantmessaging also offers transmission of information between one or moreusers via collaborative messaging tools. Moreover, in business orpersonal settings, individuals frequently collaborate and shareinformation over the Internet via the collaborative messaging tools.Furthermore, collaborative messaging tools can include for instance,IBM® Lotus® Sametime® (IBM, Lotus and Sametime are registered trademarksof International Business Machines Corporation in the United States,other countries or both). The collaborative messaging tools can also beadapted to allow users to communicate in real-time with other usersthrough social networking websites, computing environments, cell phones,and/or other communication devices.

SUMMARY

Embodiments of the present invention disclose a method, computer system,and computer program product for generation of related content during aninstant message communication between collaborative tools. In oneembodiment, a method is provided for generating related content duringan instant message communication between collaborative tools. The methodcomprises a computer system executing an instant message session in arequestor message program of a first collaborative tool of one or morecollaborative tools between one or more users of the one or morecollaborative tools. The method further comprises the computer systemexecuting the instant message session in a responder message program ofa second collaborative tool of one or more collaborative tools. Themethod further comprises the computer system examining information frominstant messages in a message window of the instant message session. Themethod further comprises the computer system identifying at least onekeyword data of the examined information of the instant messages. Themethod further comprises the computer system querying a first repositoryfor a first related content data that matches the at least one keyworddata. The method further comprises the computer system generating one ormore contextual search results based on the match. The method furthercomprises the computer system transmitting the generated one or morecontextual search results for display on the one or more collaborationtools. The method further comprises the computer system annotating thegenerated one or more contextual search results of the display one ormore collaboration tools. The method further comprises the computersystem storing the generated one or more contextual search result instoring the instant message session. The method further comprises thecomputer system querying a second repository for a second relatedcontent data that matches the at least one keyword data. The methodfurther comprises the computer system updating the generated one or morecontextual search results with the queried second related content datathat matches the at least one keyword data. The method further comprisesthe computer system displaying an alert in the one or more collaborationtools, wherein the alert indicates the availability of the update to thegenerated one or more contextual search results.

In another embodiment, a computer system is provided for generatingrelated content during an instant message communication betweencollaborative tools. The computer system comprises of one or moreprocessors, one or more computer-readable memories, one or morecomputer-readable tangible storage devices and program instructionswhich are stored on at least one of the one or more storage devices forexecution by at least one of the one or more processors via at least oneof the one or more memories. The computer system further comprisesexecuting an instant message session in a requestor message program of afirst collaborative tool of one or more collaborative tools between oneor more users of the one or more collaborative tools. The computersystem further comprises executing the instant message session in aresponder message program of a second collaborative tool of one or morecollaborative tools. The computer system further comprises examininginformation from instant messages in a message window of the instantmessage session. The computer system further comprises identifying atleast one keyword data of the examined information of the instantmessages. The computer system further comprises querying a firstrepository for a first related content data that matches the at leastone keyword data. The computer system further comprises generating oneor more contextual search results based on the match. The computersystem further comprises transmitting the generated one or morecontextual search results for display on the one or more collaborationtools. The computer system further comprises annotating the generatedone or more contextual search results of the display one or morecollaboration tools. The computer system further comprises storing thegenerated one or more contextual search results in storing the instantmessage session. The computer system further comprises querying a secondrepository for a second related content data that matches the at leastone keyword data. The computer system further comprises updating thegenerated one or more contextual search results with the queried secondrelated content data that matches the at least one keyword data. Thecomputer system further comprises displaying an alert in the one or morecollaboration tools, wherein the alert indicates the availability of theupdate to the generated one or more contextual search results.

In another embodiment a computer program product is provided forgenerating related content during an instant message communicationbetween collaborative tools. The computer program product comprises oneor more processors, one or more computer-readable memories, one or morecomputer-readable tangible storage devices and program instructionswhich are stored on at least one of the one or more storage devices forexecution by at least one of the one or more processors via at least oneof the one or more memories. The computer program product furthercomprises executing an instant message session in a requestor messageprogram of a first collaborative tool of one or more collaborative toolsbetween one or more users of the one or more collaborative tools. Thecomputer program product further comprises executing the instant messagesession in a responder message program of a second collaborative tool ofone or more collaborative tools. The computer program product furthercomprises examining information from instant messages in a messagewindow of the instant message session. The computer program productfurther comprises identifying at least one keyword data of the examinedinformation of the instant messages. The computer program productfurther comprises querying a first repository for a first relatedcontent data that matches the at least one keyword data. The computerprogram product further comprises generating one or more contextualsearch results based on the match. The computer program product furthercomprises transmitting the generated one or more contextual searchresults for display on the one or more collaboration tools. The computerprogram product further comprises annotating the generated one or morecontextual search results of the display on one or more collaborationtools. The computer program product further comprises storing thegenerated one or more contextual search result in storing the instantmessage session. The computer program product further comprises queryinga second repository for a second related content data that matches theat least one keyword data. The computer program product furthercomprises updating the generated one or more contextual search resultswith the queried second related content data that matches the at leastone keyword data. The computer program product further comprisesdisplaying an alert in the one or more collaboration tools, wherein thealert indicates the availability of the update to the generated one ormore contextual search results.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Novel characteristics of the invention are set forth in the appendedclaims. The invention itself, however, as well as preferred mode of use,further objectives, and advantages thereof, will be best understood byreference to the following detailed description of the invention whenread in conjunction with the accompanying Figures, wherein, likereference numerals indicate like components, and:

FIG. 1 is a functional block diagram of a contextual search system inaccordance with embodiments of the present invention.

FIG. 2 is a functional block diagram illustrating program components ofa requestor device, in accordance with an embodiment of the presentinvention.

FIG. 3 is an exemplary view of user interface elements added to a userinterface of requestor message module.

FIG. 4 is a functional block diagram illustrating program components ofa server device in accordance with embodiments of the present invention.

FIG. 5 is a flowchart depicting steps performed by a server program of aserver device in accordance with embodiments of the present invention.

FIG. 6 illustrates a block diagram of components of a computer system inaccordance with embodiments of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention comprise one or more circuits orsubassemblies of circuits, as well as, methods of operation that areexecuted to enable generation of related content based on keyword dataof one or more instant messages during an instant message sessionbetween requestors and responders of the instant message sessionsconducted on one or more collaborative devices.

The present invention further includes examination of information of anyof the keyword data of the instant messages entered as an entry in amessage window of the one or more collaborative tools. The keyword dataincludes at least one text content including, for example, words orphrases of the one or more instant messages. The at least one textcontent is recognized as the keyword data based on the one or moreinstant messages in the message window. The keyword data can be visuallydisplayed in bold letters of the message window. The message window canbe a message input window for entering the instant message. For example,keyword data of the examined information is annotated or identified inbold letters as it is entered in a window of the instant message sessionof the one or more collaboration tools, and wherein the at least onekeyword data of the instant messages is uniquely displayed using adifferent visual distinction from other information of the instantmessages.

The message window can also be utilized for transmitting the one or moreinstant messages for display on the one or more collaborative tools. Theconversation window can be an instant message pane for displaying theone or more instant messages to the requestor or responders of theinstant message session. Furthermore, embodiments of the presentinvention are adapted to search or query internal and external databasesfor related content that matches the at least one text content of thekeyword data. The matched related content of the at least one textcontent of the keyword data are further transmitted to conversationwindow of the one or more collaborative tools during the instantmessaging sessions. The matched related content of the at least one textof the keyword data are stored and asynchronously updated in therepository for future retrieval, as detailed below, in accordance withembodiments of the present invention.

Further aspects of the present invention will now be described inconjunction with the Figures. Referring to FIG. 1, contextual searchsystem 100 for dynamically generating relating content based on keyworddata entered or transmitted in message windows during an instant messagesessions in real time is shown. Contextual search system 100 comprisesnetwork 102, requestor devices 106, 112, responder devices 114, 116 andserver device 105. Requestor devices 106, 112 and responder devices 114,116, are clients to server device 105, interconnected over network 102.Moreover, requestor devices 106, 112 and responder devices 114, 116operate with server 105 to facilitate generation of contextual searchcontents during the instant messaging sessions hosted between requestors110, 111 and responders 113, 115. Furthermore, requestor 110, 111 can bea host that initiates a request to collaboratively generate thecontextual search results for display in messaging windows of theinstant messaging session, conducted with responders 113, 115. In oneaspect, roles of generating contextual search results in contextualsearch system 100 between requestors 110, 111 and responders 113, 115can be interchangeable.

Requestor devices 106, 112 can be, for example, a laptop, tablet, ornotebook personal computer (PC), a desktop computer, a mainframe or minicomputer, a personal digital assistant (PDA), or a smart phone such as aBlackberry® (Blackberry is a registered trademark of Research in MotionLimited (RIM) Inc., in the United States, other countries, or both) oriPhone® (iPhone is a registered trademark of Apple Inc., in the UnitedStates, other countries, or both), respectively. Furthermore, each ofrequestor devices 106, 112 comprises requestor program 108. Requestor108 can be any type of software application that is compatible togenerate contextual search contents during instant messaging sessions.Responder devices 114, 116, can be for example, a laptop, tablet, ornotebook personal computer (PC), a desktop computer, a mainframe or minicomputer, a personal digital assistant (PDA), or a smart phone such as aBlackberry®, respectively. Each of responder devices 114, 116 comprisesan instance of responder program 109.

Server device 105 can be for example, a server computer system such as amanagement server, a web server, or any other electronic device orcomputing system capable of receiving and sending data. Further, serverdevice 105 can also represent a “cloud” of computers interconnected byone or more networks, where server device 105 can be a primary serverfor a computing system utilizing clustered computers when accessedthrough network 102. For example, a cloud computing system can be animplementation of contextual search system 100 for dynamicallygenerating contextual search results based on instant message sessionsbetween requestor 110, 111 and responders 113, 115. Server device 105includes server program 104. Server program 104 performs all necessaryfunctions to generate contextual search results, and transmitting of thegenerated contextual search results for display in the conversationwindow of the instant message sessions of contextual search system 100,in accordance with embodiments of the present invention.

Network 102 includes one or more networks of any kind that providescommunication links between various devices and computers connectedtogether within unstructured content redaction system 100. Network 102can also include connections, such as wired communication links,wireless communication links, or fiber optic cables. In addition,network 102 can be implemented as a number of different types ofnetworks, including for example, a local area network (LAN), wide areanetwork (WAN) or a packet switched telephone network (PSTN), or someother networked system. Furthermore, the term “Internet” as usedaccording to embodiments of the present invention refers to a network ornetworks that uses certain protocols, such as the TCP/IP protocol, andpossibly other protocols such as the hypertext transfer protocol (HTTP)for hypertext markup language (HTML) documents that make up the WorldWide Web (the web). In one aspect, content from the Internet is oftenprovided by content servers, including, for example, server device 105can be transmitted to client display devices, including for example,requestor devices 106, 112 and responder devices 114, 116. At the heartof the Internet is a backbone of high-speed data communication linesbetween major nodes or host computers, consisting of thousands ofcommercial, government, educational and other documents that can betransferred in a collaborative application between requestors 110, 111and responders 113, 115, according to embodiments of the presentinvention.

FIG. 2 is a functional block diagram illustrating components ofrequestor devices 106, 112 in accordance with an embodiment of thepresent invention.

Requestor program 108 can, among other things, retrieve and displaycontent accessible via network 102, such as web pages. Further,requestor program 108 is a web browser. Examples of web browsers includeInternet Explorer® (Internet Explorer is a trademark of Microsoft Inc.,in the United States, other countries or both), Firefox® (Firefox is atrademark of Mozilla Corporation, in the United States other countries,or both), Safari® (Safari is a trademark of Apple, Inc. in the UnitedStates, other countries, or both) and Google Chrome™ (Google Chrome is atrademark of Google, Inc. in the United States, other countries, orboth), respectively. In some embodiments, requestor program 108 can be adeamon, a script, or a process. Requestor program 108 comprisesrequestor web page module 200.

Requestor web page module 200 is a web browser plugin/add-on thatextends the functionality of requestor program 108 by adding additionaluser interface elements to a user interface of requestor program 108.The additional user interface elements allows requestors 110, 111 andresponders 113, 115 to generate contextual search results duringcollaborative instant messaging sessions hosted between requestors 110,111 and responders 113, 115.

Requestor web page module 200 comprises a web page received in requestorprogram 108 from server program 104 of server device 105. For example,using the additional user interface, server program 104 of server device105 generates the contextual search results for display on requestordevices 106, 111, and/or responder devices 114, 116 during instantmessaging sessions between requestors 110, 111 and responders 113, 115.The web page received in requestor program 108, includes for example,program code, such as HyperText Markup Language (HTML) code orJavaScript code that, when executed, adds one or more user interfaceelements to requestor program 108.

Requestor web page module 200 further comprises requestor message module210. Requester message module 210 is a web browser plugin/add-on thatextends the functionality of requestor web page module 200 by addingadditional user interface elements to a user interface of requestor webpage module 200. Specifically, requestor message module 210 provides auser interface that allows either or both requestors 110, 111 orresponders 113, 115 to generate the contextual search results fordisplay on requestor devices 106, 111, or responder devices 114, 116,based on keyword data of instant messages entered in a messaging window.

FIG. 3 is an exemplary view of user interface elements added to a userinterface of requestor message module 210. Requestor message module 210includes one or more of the following user interface elements,including, requestor ID 310, message input window 320, conversationwindow 330, messenger bar 340, related content window 350 and relatedpeople window 360.

Requestor ID 310 provides an identifier of at least one user, engaged inthe instant message transaction, including, for example, requestors 110,111 and/or responders 113, 115. Requestor ID 310 includes for example, aname of an image or other display of remotely located responders 113,115, with which requestors 113, 115 communicates and transmitsinformation to generate the contextual search for display on requestormessage module 210.

The image or other displays of requestor ID 310 can include for example,a name of either of responders 113, 115 and/or requestors 110, 111, anicon that represents either of responders 113, 115 and/or requestors110, 111, or other graphical representation either of responders 113,115 and/or requestors 110, 111. Requestor message module 210 can alsoinclude a responder selection section (not depicted). The responderselection section can be used by requestors 110, 111 to selectresponders 113, 115, to which an instant messaging chat session can beinitialized.

Message input window 320 is a window editor or a message window, throughwhich a user, including for example, requestors 110, 111 can entercurrent instant messages for transmission to another user, including forexample, responders 113, 115, during an instant messaging session hostedbetween requestor devices 106, 112, and responder devices 116, 114.Requestors 110, 111 can enter an instant message in message input window320 using a standard keyboard for example, and then submit the instantmessage to conversation window 330, for viewing by either responders113, 115 and/or requestors 110,112.

Conversation window 330 represents conversation history betweenresponders 113, 115 and requestors 110, 111. Conversation window 330contains a transcript of instant messages that are dynamically exchangedbetween responders 113, 115 and/or requestors 110, 111. The instantmessages exchanged in conversation window 330 can include identifiers toidentify either responders 113, 115 and/or requestors 110, 111. Forexample, instant messages in conversation window 330 can be used togenerate one or more related contextual results on requestor messagemodule 210, as described in more details below, in accordance with oneembodiment of the present invention.

Messenger bar 340 provides requestor message module 210 with a graphicaluser interface that presents a resource that is currently being sharedbetween participants of the instant message session on requestor messagemodule 210. Messenger bar 340 displays representations of any image,audio, video, or other types of resources that are attached to instantmessages exchanged between either responders 113, 115 and/or requestors110, 111, in accordance with embodiments of the present invention.Related content window 350 displays results of generated contextualsearches based on keyword data entered in message input window 320.Related people window 360 displays names and other identification ofindividuals who are identified as being related to keyword data ofmessage input window 320.

Requestor message module 210 dynamically performs a search for key worddata from the instant messages entered in message input window 320,transmitted and displayed on conversation window 330. Further, requestormessage module 210 searches for the key word data by dynamicallycollaborating with server program 104 of server device 105 to search adatabase of server device 105 that includes the instant messageconversation threads of related content of instant message conversationhistories stored in the database of server device 105, in accordancewith embodiments of the present invention.

Furthermore, server program 104 of server device 105 correlates withrequestor message module 210 to dynamically perform the search ofrelated content that matches the keyword data of the instant messages,periodically, randomly, and/or using event-based monitoring of instantmessages entered into message input window 320 and transmitted toconversation window 330. Server program 104 further displays themonitored instant messages on conversation window 330 of requestormessage module 210.

In one embodiment, the search of related content in the database thatmatches the keyword data is performed dynamically by requestor messagemodule 210 as the instant messages are entered into message input window320. In one embodiment, the search can be performed even prior to auser, including for example, requestors 110, 111, submitting the instantmessage to conversation window 330, for display to either of requestors110, 111 and responders 113, 115, in accordance with embodiments of thepresent invention. For example, requestors 110, 111 can enter or type “Ilike my new Android phone” or “We should consider ereaders too” intomessage input window 320. In this manner, as the instant message(s) areentered into message input window 320, server program 104 searches oneor more database of server device 105 to dynamically identify relatedcontent of instant messages in the databases that correlate with thekeyword data of instant messages in message input window 320, inaccordance with embodiments of the present invention.

In one embodiment, if a word or phrase of the instant message isrecognized as a keyword data, the phrase or word is dynamicallyidentified as such, and displayed to requestor 110, 111 in message inputwindow 320. For example, the phrase or word can be displayed in messageinput window 320 using unique visual distinction from the other instantmessages entered in message input window 320. In the illustratedexample, the unique distinction can recognize the word “ereaders” as akeyword, and display the word differently, as illustrated, in bold or adifferent unique format, together with the other instant messagesentered in message input window 320.

Furthermore, requestor 110, 111 submits the instant message togetherwith identified keyword data, uniquely displayed on message input window320 to be transmitted to the instant messaging session on conversationwindow 330 between requestor 110, 111 of requestor device, andresponders 113, 115, of responder devices 114, 116. Once the instantmessages are transmitted to conversation window 330 they become part ofthe collaboration history of one or more instant message sessionsbetween requestor 110, 111 and responders 113, 115. In one embodiment,the collaboration history of the one or more instant message sessions,together with any identified keyword data of the one or more instantmessage sessions is stored in a database of server device 105. In oneembodiment, requestor message module 210 further correlates with severprogram 104 to search the database of server device 105 for the keyworddata that are stored in the database, for reference, now or in thefuture, such as when the one or more instant message sessions of thecollaboration history is re-opened.

Requestors 110, 111 can optionally highlight keywords of instantmessages entered in message input window 320 of the instant messagesessions. Therefore, in this manner, requestor 110, 111, have theability to indicate a desire for the highlighted keyword to bedesignated as a keyword data. The highlighted words by requestor 110,111 further allows requestor message module 210 to search for keyworddata in the database of server device 105 that can not have beenautomatically identified as a keyword data by server program 104 ofserver device 105. Moreover, highlighted words by requestors 110, 111become an attribute of words in past or present instant message sessionsof the collaboration history that is stored in the database of serverdevice 105. Moreover, the highlighted words in message input window 320are displayed differently from other words in the instant messagethread. This alerts all participants in the instant messageconversation, including for example, requestor 110, 111 and responders113, 115, that there is a keyword in the instant messages entered inmessage input window 320 or transmitted in conversation window 330.

Furthermore, requestor message module 210 searches either or bothmessages in message input window 320 or conversation window 330 forkeyword data pertaining to related content of instant messages, storedin the database of server device 105. In particular, related data orcontent of database of the server device 105 are matched against thekeyword data of message input window 320. If a match exists of thekeyword data and the related content, the match is displayed forrequestor 110, 111 or responders 113, 115, for viewing during instantmessage sessions on conversation window 330. For example, a search canbe performed for keyword “Android Phone” that is entered in messageinput window 320 and transmitted to conversation window 330. In thismanner, related content of the keyword data of “Android” will bedisplayed in related content window 350. In one embodiment, as keywordsare identified and displayed, requestor message module 210 correlateswith server program 104 of server device 105 to search for relatedcontent of keyword data “Android”.

For example, a search is performed for keyword data “Android” as theinstant messages of keyword data are entered in message input window320. Further, server program 104 performs a search for related data orcontent that relates to “Android” and server program 104 also searchesfor other related data, including for example, to a company'sprocurement department's inventory related to Android phone. In depictedexample, related content window 350 displays “Android experts community,Understanding the Android SDK, Android hardware vendors. Related contentwindow 350 displays related data of keyword data of message input window320 related content window 350, for viewing by requestor 110, 111 andresponders 113, 115.

Furthermore, the related data of related content window 350 is displayedbased on one keyword/phrase at a time and the related content can alsobe uniquely displayed, specifically to requestors 110, 111 andresponders 113, 115, in accordance with embodiments of the presentinvention. Furthermore, either the requestors 110, 111 or responders113, 115, can select specific keyword data of instant messages to searchthat are correlated with related data. In particular, once the keywordis selected, related content window 350 displays related content that isrelated to content that is matched against keyword data of the instantmessage in message input window 320. Related content window 350 furtherdisplays multiple related contents of keyword data that correlates withthe selected keyword of the instant messages of the dynamicallyidentified keyword data of the instant messages by requestor messagemodule 210.

Moreover, since dynamically identified keyword data are automaticallystored in the database of server device 105, keyword searches can beautomatically saved and stored in the database of server device 105 forfuture searches and retrieval. Further, since the search results ofrelated content and keywords of the related content are saved, they canalso be updated at any time for retrieval by requestor 110, 111 andresponders 113, 115. Furthermore, the search results can also bedynamically updated based on the keyword data entered in message inputwindow 320. The requestor message module 320 can update the keywordsearch based on keyword data of the instant messages in message inputwindow, asynchronously, even if either or both or requestor 110, 111 andresponders 113, 115 are not currently engaged in an instant messagingsession. For example, if a requestor 108 opened a chat history a yearlater, the most recent contextual search results from the searchresources pertaining to saved keyword data and related content that arestored in the chat history of the database of server device 105 will beautomatically displayed during collaborative message session betweenrequestor 110, 111 and responders 113, 115. In this manner, relatedcontent window 350 will display related contents of the latest keywordsearch relating to “Android Phone”, in accordance with embodiments ofthe present invention.

FIG. 4 is a functional block diagram illustrating program components ofa server device in accordance with embodiments of the present invention.

Sever device 105 includes server program 104 and database 445. Serverprogram 104 performs all necessary functions to generate contextualsearch results based on matching against one or more keyword data andrelated content stored in database of server device 105.

Database 445 can be any type of storage device, storage server, storagearea network, redundant array of independent discs (RAID), cloud storagedevice, or any type of data storage that maintains information,including collaboration history of instant messaging sessions ofrequestors 110, 111 and responders 113, 115. Database 445 performsoperations of both an internal and an external database device. Database445 can also be a relational database management system (RDBMS). A RDBMSis a database that stores information from documents in tables, and alsodefines relationships among the information in the tables, including forexample, collaboration history of instant messaging session betweenrequestors 110, 111 and responders 113, 115. Database 445 includesinternal storage 450 and external storage 460. Internal storage 450includes locally available information from metadata and/or filesassociated with requestor device 106, 112 and responder devices 114,116. Information contained in internal storage 450 includes for example,information pertaining to collaboration history of one or more instantmessaging sessions between requestor 110, 111, and responders 113, 115in accordance with embodiments of the present invention.

Information in internal storage 450 can be files for generatingcontextual search results based matched between related contents andkeyword data of instant messages during the instant messaging sessions,as described in more details below. In one embodiment, database 445 issorted, for instance, through extraction of the files or indexing of thefiles. Sorting mechanism allows easy searching of for related contentsearched in internal storage 450 based on keyword data of the instantmessages dynamically searched in message input window 320 orconversation window 330 and transmitted to internal storage 450 formatching against related content of the keyword data in internal storage450.

Furthermore, internal storage 450 also stores locally availableinformation pertaining to requestor program 108 of requestor device 106,112 or responder program 109 of responder devices 114, 115. The locallyavailable information can include collaboration history of instantmessaging sessions conducted over network 102, internet cache, and/orinternet browsing history, that relates to information searched or savedover network 102. Further, the types of information available ininternal storage 450 include content of keywords that are automaticallyor manually searched in requestor message module 210 of requestorprogram 108. The content can be specifically related to keyword datathat is dynamically searched in message input window 320 of requestormessage module 210. For example, “Android” a keyword data search inrequestor message module 210, can include information relating to“Android” that is stored in internal storage 450, in this case, therelated information of “Android” that is stored in internal storage 450can include, for example, “Android experts community understanding theAndroid SDK Android hardware vendors”, as described above. In thismanner, the related information is locally stored in internal storage450, and also the related information is correlated to keyword data“Android”, in the event that the keyword data is manually orautomatically searched in requestor message module 210. External storage460 includes information from Internet sources, including for example,search engines, or other Internet sources with information that canrelate to keyword data in requestor message module 210. The informationin external storage 460 can also be derived from private or subscriptiondatabases, a remote user or machine, and the like, in accordance withembodiments of the present invention.

Server program 104 includes monitoring module 410, content detector 420,analysis module 430 and query module 440. Monitoring module 410 monitorsinstant messages entered by requestors 110, 111 in message input window320 periodically, randomly, and/or using event-based monitoring forkeyword data that are automatically or manually searched based onrelated data in database 445. Monitoring module 410 also monitorsmessages transmitted in conversation window 330. Monitoring module 410receives information from requestor program 108 that details ordescribes requestor interactions during the instant message sessionbetween requestor 110, 111 and responders 113, 115. In particular,monitoring module 410 monitors the instant messages as they are typedinto message input window 320, and/or as they appear in message inputwindow 320 prior to requestors 110, 111 sending or transmitting themessage to conversation window 330. Content detector 420 monitorskeyword data of instant messages are they are entered message inputwindow 320. Content detector 420 dynamically searches either or bothinternal storage 450 or external storage 460 for related content thatmatches the keyword data. Analysis module 430 analyzes all matchedkeyword data against related content of the keyword data in either ofinternal storage 450 or external storage 460 by content detector 420.Analysis module 430 also generates related contents that match thekeyword data based on the match. Analysis module 430 generates the matchbased on phrases, subject matter, and other specific components that arerelated to keyword data of the instant messages based on relationshipsbetween the keyword data of the instant message typed in message inputwindow 320 of requestor message module 210. The related content of thekeyword data is stored in internal storage 450 or external storage 460.

Analysis module 430 generates contextual search results based on thematch, and transmits the generated contextual search results to relatedcontent window 350 for display in requestor message module 210. Analysismodule 430 can utilize a Hidden Markov Model to generate the contextualsearch results. Hidden Markov Models provide probabilities of predictingrelated content in internal storage 450 and external storage 460 thatmatches keywords entered in message input window 320. The Hidden Markovmechanism can further provide statistical information associated withinstant message sessions between requestors 110, 111 and responders 113,115. The statistical information can include frequency, history,ratings, preference settings, and the like, that relates to the instantmessaging session between requestor and participants.

Query module 440 utilizes the matched related contents against thekeywords by analysis module 430 to generate contextual search terms fordisplay in related content window 350 in requestor message module 210 ofrequestor devices 106, 112. Query module 440 uses APIs or otherdatabase-specific semantics, including for example, SQL commands tocommunicate with analysis module 430, and generation of the contextualsearch terms. For example, query module 440 transmits the generatedcontextual search terms to related content window 350 of requestormessage module 210 for display to requestor 110, 111 or responders 113,115 during instant message sessions. In one embodiment, query module 440can also store the generated search content in database 445 in the eventthat either or both requestor 110, 111 or responders 113, 115 are notengaged in the instant messaging session.

FIG. 5 is a flowchart depicting steps performed by server program 104 ofserver device 105 of FIG. 1, in accordance with embodiments of thepresent invention. In step 510, server program 104 executes an instantmessage session in requestor program 108. In step 520, server program104 executes the instant message session in a responder program 109. Instep 530, server program 104 examines information from the instantmessages in requestor message module 210. In step 540, server program104 identifies at least one keyword data of the examined information ofthe instant messages. In step 550, server program 104 queries internalstorage 450 for a first related content data that matches the at leastone keyword data. In step 560, server program 104 generates one or morecontextual search results based on the match. In step 570, serverprogram 104 transmits the generated one or more contextual searchresults to either of requestor devices 106, 112 or responder devices113, 115. In step 580, server program 104 annotates the generated one ormore contextual search results of the display in either of requestordevices 106, 112 or responder devices 113, 115. In step 590, serverprogram 104 stores the generated one or more contextual search resultsin database 445 of the instant message session. In step 592, serverprogram 104 queries external storage 460 for a second related contentdata that matches the at least one keyword data. In step 594, serverprogram 104 updates the generated one or more contextual search resultswith the queried second related content data that matches the at leastone keyword data. In step 596, server program displays an alert ineither of requestor devices 106, 112 or responder devices 113, 115,wherein the alert indicates the availability of the update to thegenerated one or more contextual search results.

FIG. 6 is a functional block diagram of a computer system, in accordancewith an embodiment of the present invention.

Computer system 600 is only one example of a suitable computer systemand is not intended to suggest any limitation as to the scope of use orfunctionality of embodiments of the invention described herein.Regardless, computer system 600 is capable of being implemented and/orperforming any of the functionality set forth hereinabove. In computersystem 600 there is computer 612, which is operational with numerousother general purpose or special purpose computing system environmentsor configurations. Examples of well-known computing systems,environments, and/or configurations that can be suitable for use withcomputer 612 include, but are not limited to, personal computer systems,server computer systems, thin clients, thick clients, handheld or laptopdevices, multiprocessor systems, microprocessor-based systems, set topboxes, programmable consumer electronics, network PCs, minicomputersystems, mainframe computer systems, and distributed cloud computingenvironments that include any of the above systems or devices, and thelike. Each one of requestor devices 106, 112, responder devices 113, 115and server device 105 can include or can be implemented as an instanceof computer 612.

Computer 612 can be described in the general context of computer systemexecutable instructions, such as program modules, being executed by acomputer system. Generally, program modules can include routines,programs, objects, components, logic, data structures, and so on thatperform particular tasks or implement particular abstract data types.Computer 612 can be practiced in distributed cloud computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed cloudcomputing environment, program modules can be located in both local andremote computer system storage media including memory storage devices.

As further shown in FIG. 6, computer 612 is shown in the form of ageneral-purpose computing device. The components of computer 612 caninclude, but are not limited to, one or more processors or processingunits 616, memory 628, and bus 618 that couples various systemcomponents including memory 628 to processing unit 616.

Bus 618 represents one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnect (PCI) bus.

Computer 612 typically includes a variety of computer system readablemedia. Such media can be any available media that is accessible bycomputer 612, and includes both volatile and non-volatile media, andremovable and non-removable media.

Memory 628 includes computer system readable media in the form ofvolatile memory, such as random access memory (RAM) 630 and/or cache632. Computer 612 can further include other removable/non-removable,volatile/non-volatile computer system storage media. By way of exampleonly, storage system 634 can be provided for reading from and writing toa non-removable, non-volatile magnetic media (not shown and typicallycalled a “hard drive”). Although not shown, a magnetic disk drive forreading from and writing to a removable, non-volatile magnetic disk(e.g., a “floppy disk”), and an optical disk drive for reading from orwriting to a removable, non-volatile optical disk such as a CD-ROM,DVD-ROM or other optical media can be provided. In such instances, eachcan be connected to bus 618 by one or more data media interfaces. Aswill be further depicted and described below, memory 628 can include atleast one program product having a set (e.g., at least one) of programmodules that are configured to carry out the functions of embodiments ofthe invention.

Requestor program 108, responder program 109, and server program 104 canbe stored in memory 628 by way of example, and not limitation, as wellas, an operating system, one or more application programs, other programmodules, and program data. Each of the operating system, one or moreapplication programs, other program modules, and program data or somecombination thereof, can include an implementation of a networkingenvironment. Program modules 642 generally carry out the functionsand/or methodologies of embodiments of the invention as describedherein. Each one of requestor program 108, responder program 109 andserver program 104 are implemented as or are an instance of program 640.

Computer 612 can also communicate with one or more external devices 614such as a keyboard, a pointing device, etc., as well as display 624; oneor more devices that enable a user to interact with computer 612; and/orany devices (e.g., network card, modem, etc.) that enable computer 612to communicate with one or more other computing devices. Suchcommunication occurs via Input/Output (I/O) interfaces 622. Still yet,computer 612 communicates with one or more networks such as a local areanetwork (LAN), a general wide area network (WAN), and/or a publicnetwork (e.g., the Internet) via network adapter 620. As depicted,network adapter 620 communicates with the other components of computer612 via bus 618. It should be understood that although not shown, otherhardware and/or software components can be used in conjunction withcomputer 612. Examples include, but are not limited to: microcode,device drivers, redundant processing units, external disk drive arrays,RAID systems, tape drives, and data archival storage systems, etc.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams can represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock can occur out of the order noted in the Figures. For example, twoblocks shown in succession can, in fact, be executed substantiallyconcurrently, or the blocks can sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustrations are implemented by special purpose hardware-based systemsthat perform the specified functions or acts, or combinations of specialpurpose hardware and computer instructions.

As will be appreciated by one skilled in the art, embodiments of thepresent invention can be embodied as a system, method or computerprogram product. Accordingly, embodiments of the present invention cantake the form of an entirely hardware embodiment, an entirely softwareembodiment (including firmware, resident software, micro-code, etc.) oran embodiment combining software and hardware aspects that can allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, embodiments of the present invention can take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer-readable program code embodied thereon.

In addition, any combination of one or more computer-readable medium(s)can be utilized. The computer-readable medium can be a computer-readablesignal medium or a computer-readable storage medium. A computer-readablestorage medium can be for example, but not limited to, an electronic,magnetic, optical, electromagnetic, or semiconductor system, apparatus,or device, or any suitable combination of the foregoing. More specificexamples (a non-exhaustive list) of the computer-readable storage mediumcan include the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), an optical fiber, a portable compactdisc read-only memory (CD-ROM), an optical storage device, a magneticstorage device, or any suitable combination of the foregoing. In thecontext of this document, a computer-readable storage medium can be anytangible medium that contains, or stores a program for use by or inconnection with an instruction execution system, apparatus, or device.The term “computer readable storage memory” does not encompass a signalpropagation medium such as a copper cable, optical fiber, or wirelesstransmission medium.

A computer-readable signal medium can include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal can takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium can be any computer-readable medium thatis not a computer-readable storage medium and that communicates,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer-readable medium can be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing. Computer program code for carrying out operations forembodiments of the present invention can be written in any combinationof one or more programming languages, including an object orientedprogramming language such as Java, Smalltalk, C++ or the like,conventional procedural programming languages such as the “C”programminglanguage, a hardware description language such as Verilog, or similarprogramming languages. The program code can execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer can be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection can be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The computer program instructions can also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Based on the foregoing a method, system and computer program productgenerating related content during an instant message communicationbetween collaborative tools has been described. However, numerousmodifications and substitutions can be made without deviating from thescope of the present invention. In this regard, each block in theflowcharts or block diagrams can represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock can occur out of the order noted in the Figures. Therefore, thepresent invention has been disclosed by way of example and notlimitation.

What is claimed is:
 1. A computing system for generating related contentduring an instant message communication between collaborative tools, thecomputing system comprising: one or more processors, one or morecomputer-readable memories, one or more computer-readable tangiblestorage devices and program instructions which are stored on at leastone of the one or more storage devices for execution by at least one ofthe one or more processors via at least one of the one or more memories,the program instructions comprising: program instructions to execute aninstant message session in a requestor message program of a firstcollaborative tool of one or more collaborative tools between one ormore users of the one or more collaborative tools; program instructionsto execute the instant message session in a responder message program ofa second collaborative tool of one or more collaborative tools; programinstructions to examine information from instant messages in a messagewindow during the instant message session; program instructions toautomatically identify at least one keyword data of the examinedinformation, wherein the examined information is dynamically analyzedprior to submission of the instant messages in the message window of oneor more collaborative tools, and wherein the examined information isdynamically analyzed as it is entered in the message window, and whereinthe at least one keyword data is automatically identified withdistinctive text formats, and displayed in the message window based onthe dynamically analyzed examined information; program instructions tohighlight the at least one keyword data based on a desire to designatedthe highlight at least one keyword data as a keyword data of theexamined information, wherein the highlighted at least one keyword datais manually identified as the keyword data of the examined information;program instructions to submit the automatically identified at least onekeyword data and the highlighted at least one keyword data as acollaborative instant message session history in a first queryrepository of the instant message session; program instructions to querythe first repository for a first related content data that matches theat least one keyword data; program instructions to generate one or morecontextual search results based on the match; program instructions totransmit the generated one or more contextual search results for displayon the one or more collaboration tools; program instructions to annotatethe generated one or more contextual search results of the display oneor more collaboration tools, wherein the annotated one or morecontextual search results are displayed with distinctive text formats inthe message window of the one or more collaborative tools; programinstructions to store the generated one or more contextual search resultin a storage of the instant message session; program instructions toquery a second repository for a second related content data that matchesthe at least one keyword data, wherein the query for the second relatedcontent data is automatically performed during automatic identificationof the at least one keyword data and the highlighted at least onekeyword data of the instant messages in the message window; programinstructions to update the generated one or more contextual searchresults with the queried second related content data that matches the atleast one keyword data, wherein the updated generated one or morecontextual search results of the queried second related content data isannotated and displayed in a related content window of the one or morecollaborative tools; and program instructions to display an alert in therelated content window of the one or more collaboration tools, whereinthe alert indicates the availability of the update to the generated oneor more contextual search results.
 2. The computing system according toclaim 1, wherein the highlighted at least one keyword data is manuallyselected, in the message window during the instant message session, andwherein the highlighted at least one keyword data is uniquely displayedthan that of the automatically identified keyword data in the messagewindow during the instant message session.
 3. The computing systemaccording to claim 1, wherein the message window is a message inputwindow or a message conversation window of the requestor program or theresponder program, and wherein the at least one keyword data isdisplayed in either of the message input window or the conversationwindow of the message window.
 4. The computing system according to claim1, program instructions to generate one or more contextual searchresults based on the match further comprises: program instructions toupdate the contextual search results stored in one or more repositories,and wherein the contextual search results are asynchronously updated. 5.A computer program product for generating related content during aninstant message communication between collaborative tools, the computerprogram product comprising: one or more computer-readable storage memorydevice and program instructions stored on the one or morecomputer-readable storage memory device, the program instructionscomprising: program instructions to execute an instant message sessionin a requestor message program of a first collaborative tool of one ormore collaborative tools between one or more users of the one or morecollaborative tools; program instructions to execute the instant messagesession in a responder message program of a second collaborative tool ofone or more collaborative tools; program instructions to examineinformation from instant messages in a message window during the instantmessage session; program instructions to automatically identify at leastone keyword data of the examined information, wherein the examinedinformation is dynamically analyzed prior to submission of the instantmessages in the message window of one or more collaborative tools, andwherein the examined information is dynamically analyzed as it isentered in the message window, and wherein the at least one keyword datais automatically identified with distinctive text formats, and displayedin the message window based on the dynamically analyzed examinedinformation; program instructions to highlight the at least one keyworddata based on a desire to designated the highlight at least one keyworddata as a keyword data of the examined information, wherein thehighlighted at least one keyword data is manually identified as thekeyword data of the examined information; program instructions to submitthe automatically identified at least one keyword data and thehighlighted at least one keyword data as a collaborative instant messagesession history in a first query repository of the instant messagesession; program instructions to query the first repository for a firstrelated content data that matches the at least one keyword data; programinstructions to generate one or more contextual search results based onthe match; program instructions to transmit the generated one or morecontextual search results for display on the one or more collaborationtools; program instructions to annotate the generated one or morecontextual search results of the display one or more collaborationtools, wherein the annotated one or more contextual search results aredisplayed with distinctive text formats in the message window of the oneor more collaborative tools; program instructions to store the generatedone or more contextual search result in a storage of the instant messagesession; program instructions to query a second repository for a secondrelated content data that matches the at least one keyword data, whereinthe query for the second related content data is automatically performedduring automatic identification of the at least one keyword data and thehighlighted at least one keyword data of the instant messages in themessage window; program instructions to update the generated one or morecontextual search results with the queried second related content datathat matches the at least one keyword data, wherein the updatedgenerated one or more contextual search results of the queried secondrelated content data is annotated and displayed in a related contentwindow of the one or more collaborative tools; and program instructionsto display an alert in the related content window of one or morecollaboration tools, wherein the alert indicates the availability of theupdate to the generated one or more contextual search results.
 6. Thecomputer program product according to claim 5, wherein the highlightedat least one keyword data is manually selected, in the message windowduring the instant message session, and wherein the highlighted at leastone keyword data is uniquely displayed than that of the automaticallyidentified keyword data in the message window during the instant messagesession.
 7. The computer program product according to claim 5, programinstructions to generate one or more contextual search results based onthe match further comprises: program instructions to update thecontextual search results stored in one or more repositories, andwherein the contextual search results are asynchronously updated.